#!/usr/bin/env bash
set -euo pipefail

# ========================
# 一键设置 Overleaf CE 的 TeX Live：
# 1) 切换 tlmgr 到国内镜像（默认清华 TUNA）
# 2) 更新 tlmgr 自身
# 3) 更新已有包
# 4) 安装 scheme-full（几乎全套包）
#
# 用法：
#   bash setup_texlive_cn.sh            # 默认为容器名 sharelatex
#   bash setup_texlive_cn.sh mylatex    # 如果容器不是叫 sharelatex
# ========================

CONTAINER_NAME="${1:-sharelatex}"

# 默认使用清华镜像，如需改用中科大等，修改这一行即可
TL_MIRROR="${TL_MIRROR:-http://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/}"

echo "==> Target container: ${CONTAINER_NAME}"
echo "==> TeX Live mirror : ${TL_MIRROR}"

# 检查容器是否存在且在运行
if ! docker ps --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
  echo "ERROR: 容器 ${CONTAINER_NAME} 未在运行，请先用 'docker ps' 确认名字并启动它。"
  exit 1
fi

echo "==> 检查容器内是否有 tlmgr ..."
if ! docker exec "${CONTAINER_NAME}" sh -lc 'command -v tlmgr >/dev/null 2>&1'; then
  echo "ERROR: 容器内找不到 tlmgr，这个镜像可能不是 TeX Live 环境。"
  exit 1
fi

echo "==> 设置 tlmgr 使用国内镜像 ..."
docker exec "${CONTAINER_NAME}" sh -lc "tlmgr option repository '${TL_MIRROR}'"

echo "==> 当前 tlmgr 配置："
docker exec "${CONTAINER_NAME}" sh -lc "tlmgr option repository"

echo "==> 更新 tlmgr 自身（这一步可能要一点时间）..."
docker exec "${CONTAINER_NAME}" sh -lc "tlmgr update --self"

echo "==> 更新现有所有包（这一步可能会比较久）..."
docker exec "${CONTAINER_NAME}" sh -lc 'tlmgr update --all'

echo "==> 安装 TeX Live scheme-full（几乎全套包，时间和空间占用都比较大）..."
docker exec "${CONTAINER_NAME}" sh -lc 'tlmgr install scheme-full'

echo "==> 完成！TeX Live 已切换到国内镜像，并安装了 scheme-full。"
echo "    后续如果还想更新，可以在容器里手动执行： tlmgr update --all"
